package com.cjt.chat.service;

import com.cjt.chat.pojo.Group;
import com.cjt.chat.pojo.GroupMessage;
import com.cjt.chat.pojo.User;

import java.util.List;

/**
 * @author cjt
 * @since 2024/3/29
 */
public interface GroupService {
    //拉取用户群组列表
    List<Group> getGroupList(Integer userId);

    //拉取群组用户列表
    List<User> getGroupMemberList(Integer groupId);

    //拉取群历史消息
    List<GroupMessage> getGroupMessage(Integer groupId, Integer page);

    //添加群用户
    void addGroupMember(Integer groupId, Integer userId);

    //移出群用户
    boolean removeGroupMember(Integer groupId, Integer userId, Integer memberId);

    //设置群公告
    boolean setGroupNotice(Integer groupId, String notice, Integer userId);

    //保存群消息
    void saveGroupMessage(GroupMessage groupMessage);

    //综合查询群信息
    Group searchGroupInfo(Integer userId, Integer groupId);

    //查询用户权限
    Integer getMemberRole(Integer memberId, Integer groupId);

    //退出群聊
    void quitGroup(Integer userId, Integer groupId);

    //解散群聊
    void deleteGroup(Integer groupId, Integer userId);

    //修改群组名称
    void updateGroupName(Integer userId, Integer groupId, String groupName);

    //创建群聊
    void createGroup(Integer userId, String groupName);
}
